Added `route.current`, limiting `beforeHash`, `hash` & `afterHash` events to fire only when the new hash doesn't match `abaaso.route.current` or `$.route.current`