A client side router for JavaScript