1) Fixed an issue with settings module returning a function rather than a hash, causing the rest of router to never detect that pushState is available.
2) Added a fallback mechanism: register a '/404' route and it will be called when no matching route is found.