Declarative router for React applications