Маршрутизация, имеет ли такой подход право быть?
1. Use HttpFoundation Luke!
2. Ваш роутер, был бы не плох лет эдак 10 назад, но не сейчас, посмотрите роутинг symfony, или silex
3. ОБЯЗАТЕЛЬНО читаем: PSR-1, PSR-2, PSR-4<?php
namespace lib;
class Router {
// Может rules все таки?))
      private $rulls; // Зачем тут отступ?
// phpDocumentor - ваш друг, прописывайте ОБЯЗАТЕЛЬНО типы данных.
    private $uri;
    private $controller;
    private $params = [];

    function __construct(){
        $this->setUri(); // У вас нет такого метода, есть setURI
        $this->setController();
        $this->setParams();
        $this->setRulls();
    }
// Что будет, если $_SERVER['REQUEST_URI'] = '/?', или '/////'?
    private function setURI(){
// Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
        if($_SERVER['REQUEST_URI'] != '/'):
            $this->uri = explode('/',trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
        endif;
    }
// Я правильно понимаю, вы хотите сказать, что контроллер - это некий элемент массива (похоже string|null)? Обычно контроллер - это объект...
    private function setController(){
        $this->controller = array_shift($this->uri);
    }
// В этом методе вы по тупому копируете элементы, зачем?
    private function setParams(){
// Подобное форматирование может и ок для шаблонов, и то где-то, где вообще незаметно, но не тут читаем про PSR-2
        foreach ($this->uri as $value):
            $this->params[] = $value;
        endforeach;
    }

    private function setRulls(){
// NO! загрузка данных - это НЕ задача роутера, от слова СОВСЕМ
        file_exists(SITE_ROOT.DS.'routing'.DS.'rulls.php') ? $this->rulls = include(SITE_ROOT.DS.'routing'.DS.'rulls.php') : die('Файл с конфигурацией роутинга где-то затерялся, извини.');
    }
// В методе ничего нечего спасать, просто удалите его.
    public function run(){
// НЕ ИСПОЛЬЗУЙТЕ ГЛОБАЛЬНЫЕ ПЕРМЕННЫЕ
        $_REQUEST = array_merge($_REQUEST, $this->params);
        $controller = '\\controllers\\'.$this->rulls[$this->controller]['controller'];
        $action = $this->rulls[$this->controller]['action'];
        $controller = new $controller; // Что будет, если такого класса нет?
        $controller->$action(); // Что будет, если такого метода нет?
    }
}
Имеет место быть, почему нет?