Backbone will try to outsmart you...
Navigate only gets called when the hash is different.
// dummy navigate, clear the hash
router.navigate('', {trigger: false, replace: true});
// the real navigation
router.navigate('/real/route', {trigger: true});