Bug
Navigating to a default route hands off responsibility to the history adapters which use the appropriate mechanism, when using the HashHistory this uses the hashchange event which is asynchronous.
When calling the router instance's setPath() explicitly we should synchronously process the change and guard against repeated (surplus) processing in the adaptors.