A Javascript router in 20 lines
The post builds a simple client-side router with hash URLs, route registration, and load/hashchange handling. It then adds one-directional data binding with Object.observe to rerender the view when controller data changes.