A client-side routing framework for single-page Knockout applications