/**
* Split a menu into sections, and pass it through the "prepare" hook
*
* @param UnpreparedMenu $menu Menu
*
* @return Menu
*/
public function prepareMenu(UnpreparedMenu $menu)
{
$name = $menu->getName();
$params = $menu->getParams();
$sort_by = $menu->getSortBy();
$builder = new ElggMenuBuilder($menu->getItems());
$params['menu'] = $builder->getMenu($sort_by);
$params['selected_item'] = $builder->getSelected();
$params['menu'] = $this->hooks->trigger('prepare', "menu:{$name}", $params, $params['menu']);
return new Menu($params);
}