public function Save(PageUrl $pageUrl = null)
    {
        $exists = $pageUrl && $pageUrl->Exists();
        $page = $this->Value('Page') ? Page::Schema()->ByID($this->Value('Page')) : null;
        if (!$page) {
            if ($exists) {
                $pageUrl->Delete();
            }
            return null;
        }
        if (!$exists) {
            $pageUrl = new PageUrl();
        }
        $pageUrl->SetPage($page);
        $pageUrl->SetFragment($this->Value('Fragment'));
        $pageUrl->Save();
        $this->SaveParams($pageUrl);
        return $pageUrl;
    }