public function addCopyLeft($author, $pattern)
    {
        if (\is_array($pattern)) {
            foreach ($pattern as $singlePattern) {
                $this->addCopyLeft($author, $singlePattern);
            }

            return $this;
        }

        $this->copyLeft[$this->arrayKey($author)][$this->arrayKey($pattern)] = $pattern;
        $this->copyLeftReal[$this->arrayKey($author)]                        = $author;

        return $this;
    }