Base Router
router generates routes
UrlHashRouter uses the jquery hashchange plugin and listens to hash changes
changed emit format when a route is matched
UrlHashRouter#update and #setHash
UrlHashRouter#sync
don't add empty parameters to the query string
States object