public function & remove($filter)
    {
        $filters = func_get_args();
        foreach ($filters as $filter) {
            if (!($filter instanceof \Erebot\Interfaces\Event\Match)) {
                throw new \Erebot\InvalidValueException('Not a valid matcher');
            }
            $key = array_search($filter, $this->submatchers, true);
            if ($key !== false) {
                unset($this->submatchers[$key]);
            }
        }
        return $this;
    }