A tiny hashchange router inspired by express.js & page.js