You can make a request for a page (controller and action is found by the routes) internal. You can do this for example:
class Controller_Menu extends Controller
{
public function action_index()
{
$this->request->response = view stuff ...
$this->request->response->set('...', ...) // some vars
}
}
and
class Controller_Home extends Controller
{
public function action_index()
{
$this->request->response = ...; // some view stuff...
$this->request->response->set('menu',
Request::factory('menu')->execute()->response // here happens the magic
);
}
}
Every page who haves a menu dont have to do all the logic to load the menu etc. (e.g. from models). You just make a request to the controller, execute it, and get the result. Very usefull when used correctly.