Роутер как у сына маминой подруги

Когда мы разрабатываем веб-приложения, обычно используем маршрутизатор. Каждый фреймворк реализует его по-своему, хотя все они в итоге используют одни и те же принципы. Или нет? Правда ли существующие маршрутизаторы достаточно гибки, чтобы покрыть все кейсы веб-разработки? Или «танцы с бубном» — это неотъемлемая часть работы с маршрутизацией? Давайте ответим на эти вопросы, сравним различные маршрутизаторы и попутно разработаем собственный подход.