The isRouting flag prevents showDetail, showCollectionDetail, showUser, and navigate from setting location.hash when called from route() (triggered by back button hashchange). This was creating duplicate history entries that trapped the user. Also fixed: init() re-route check now uses #protocols not #library, and removed duplicate location.hash = 'about' in navigate().