Undefined property: Request::$controller in C:\wamp\www\MVC\core\Dispatcher.php on line 16
Ça veut tout simplement dire que la variable $this->request->controller n'est pas définie. Dans l'objet $request, il n'y a pas de variable d'instance de déclarée. Donc le fait d'inclure un fichier non existant, tu ne peux pas instancier un objet dont la classe n'est pas inclue. Je ne sais pas exactement qu'est-ce que ça retourne lorsqu'on utilise l'expression new sur une classe non existante (je crois que ça aurait dû lever une erreur), mais imaginons qu'il s'agit d'une valeur non définie. Ainsi lorsque tu passes $controller, une variable non définie, à la fonction call_user_func_array, tu obtiens une erreur car ton objet n'existe pas.
Assure toi que $this->request->controller soit bien définie. C'est peut-être dans cette variable que tu voudrais mettre un contrôleur (le nom du contrôleur) par défaut ! Le principal dans tout cas, c'est de comprendre ce que fait Gafikart !