My point of view here is following (I like sammy.js, so I'm biased here, nothing objective just an opinion).
History.js is all in HTML5 - so it crosses out all the support of IE8 and bellow. That is sometimes acceptable and, however, sometimes - not. Moreover, I am not completely sure that between gecko, trident, webkit - major browser engines - they all support that HTML5 history spec all the way without any differences.
So for me History.js is all out. Then we have to differ between Nav.js and Sammy.js; and I don't see this as a competition. You ONLY have keyboard based navigation in Nav.js and since there is not much projects that don't use jQuery anymore, you can achieve that in Sammy.js by using http://api.jquery.com/category/events/keyboard-events/ and special routes for special events meaning next/previous page or whatever else floats your goat.
Sammy.js is lightweight, efficient, scalable, reusable and fully cross-browser compatible.