A simple and fast client side router that processes URL changes with middleware