* @param hash if nothing is passed hash will be cleared, if you want to keep it use `NO_CHANGE`
* @param params if you want to route to a path with parameters (e.g. `/hello/:world`) you will need to define parameter values (in this example this would be `{ world: "Steve" }`)
* @param replaceState if `true`, browser won't be pushing a new history state, so going back with the browser back button will ignore the last reroute
*
* **KNOWN ISSUE**
* - Scenario:
* - A top level Router with following path: `'/:tenantID*'`
* - A sub router with a root route
* - Outcome: Calling subRouter.goTo("root") from a path like `'/dummy/admin'` is expected to route to `'/dummy'` but currently will route to `'/dummy/admin'` due to the way URLPattern works on the top level router