public function url($page = null, $arguments = array())
{
if (is_object($page) && $page instanceof URL) {
// we receive URL
return $page->setArguments($arguments);
}
if (is_array($page)) {
$p = $page[0];
unset($page[0]);
$arguments = $page;
$page = $p;
}
/** @type URL $url */
$url = $this->add('URL');
unset($this->elements[$url->short_name]);
// garbage collect URLs
if (strpos($page, 'http://') === 0 || strpos($page, 'https://') === 0) {
$url->setURL($page);
} else {
$url->setPage($page);
}
return $url->setArguments($arguments);
}