a simple hash-based client-side router for component