public function assert(MatcherInterface $matcher)
    {
        if ($this->flag('not')) {
            $matcher->invert();
        }

        $match = $matcher
            ->setAssertion($this)
            ->match($this->getActual());

        $message = $this->flag('message');

        $this->clearFlags();

        $this->responder->respond($match, $matcher->getTemplate(), $message);

        return $this;
    }