public function remove($alias)
    {
        $id = $this->getId($alias);
        if ($id) {
            unset($this->aliases[$alias]);
            $aliases = &$this->ids[$id];
            unset($aliases[array_search($alias, $aliases, true)]);
            if (!empty($aliases)) {
                $this->removeDependedAliases($alias, $id);
            } else {
                unset($this->ids[$id]);
            }
        }

        return $this;
    }