private function parseOptional(Input $definition, TypeCollection $types, array $attributes): OptionalPath
    {
        $definition->expect("[");

        $optional = $this->parseRoute($definition, $types, $attributes);

        $definition->expect("]");

        return new OptionalPath($optional);
    }