Argument Type Descriptionroute String|RegExp A string or regular expression that should be used for matching hash changes.callback Function When the hash matches a pattern as described in the route, this callback will be executed.When provided a RegExp for the route:• Matching is performed, and the resulting capture groups are passed through to the callback as an array.When provided a string for the route:• The string is parsed as a URL-like structure, like /foo/bar• If any portions of that URL are prefixed with a colon (:), they will be parsed out and provided to the callback as in the argument object in the params property.• If the last piece of the URL-like structure is prefixed with a star (*) instead of a colon, it will be replaced in the resulting RegExp generated by the router with a greedy (.+) match and anything remaining on the hash will be provided as a property on the object passed into the callback. Think of it like a basic means of globbing the end of a route.The callback function will be called with an event argument that has several properties:• params: Either an array or object of properties pulled from the new hash• oldPath: The hash in its state before the change• newPath: The new hash being shifted to• preventDefault: A method that will stop hash changes from being actually applied to the active hash. This only works if the hash change was initiated using dojo/router::go(), as changes initiated more directly to the location.hash property will already be in place.• stopImmediatePropagation: When called, will stop any further bound callbacks on this particular route from being executed. If two distinct routes are bound that are different, but both happen to match the current hash in some way, this will not keep other routes from receiving notice of the change.register() returns a handle object that can be used to unregister the callback or add additional callbacks to the same route: