PHP класс роутера
Это очень коряво. одно название класса «D» уже достаточно, чтобы понять, что код будет хреновым.
Это не ООП код, не обманывайте себя, классы Вам не нужны здесь. Если Вы любите статические методы — пишите функции, т.к. статические методы это процедурное программирование.

Искали ли Вы существующие готовые решения? Вот это, например: symfony.com/doc/current/components/routing.html

Тратьте больше времени на чтение книг, меньше на изобретение того, что уже сотни раз изобретено.
Ошибка тут одна главная — дурацкие названия. Что еще за DRouter и MCA? 

Также, почему параметры module/action пишутся в request? Также, нафига делать unset локальным переменным? Думаете, счетчик ссылок без этого не обнулится? Также, неявный addcslashes надо заменять на явное экранирование спецсимволов — или заменить ограничивающие ругулярку слеши на другой символ.

Код так себе, но в популярных фреймворках примерно такой же, так что сойдет.

Я бы сделал индекс для ускоренного поиска роута без тупого перебора всех регулярок. Это так примитивно.

Также, я не понимаю, откуда взялась мода делать HTTP-редиректы и ответы через выбрасывание исключений. Кто придумал это? Какому из паттернов это соответствует?