public function define($name, $shortName = '', $attributes = [])
    {
        // The short name is optional. We'll do a quick check
        // to keep the API as simple as possible to use.

        if (is_array($shortName) || $shortName instanceof Closure) {
            $attributes = $shortName;
            $shortName = '';
        }

        $this->definitions[] = new Definition($name, $shortName, $attributes);

        return $this;
    }