Тот случай, когда встроенный маршрутизатор уже не подходит. Я в подобном случае получал из request весь path, получал его md5-хэш и делал выборку по нему. Естественно, при сохранении категорий и их содержимого нужно было получить слаги всех родителей, составить из них путь, получить из него md5-хэш и сохранить в специальное поле.