public function parameters(): MapInterface
    {
        if ($this->parameters) {
            return $this->parameters;
        }

        return $this->parameters = $this->elements->reduce(
            new Map('string', Parameter::class),
            function(Map $carry, $element): Map {
                return $carry->merge($element->parameters());
            }
        );
    }
public function parameters(): MapInterface
    {
        if ($this->parameters) {
            return $this->parameters;
        }

        return $this->parameters = $this->elements->reduce(
            new Map('string', Parameter::class),
            function(Map $carry, $element): Map {
                return $carry->merge($element->parameters());
            }
        );
    }
public function parameters ( ) : MapInterface { if ( $ this -> parameters ) { return $ this -> parameters ; } return $ this -> parameters = $ this -> elements -> reduce ( new Map ( 'string' , Parameter :: class ) , function ( Map $ carry , $ element ) : Map { return $ carry -> merge ( $ element -> parameters ( ) ) ; } ) ; }
Return all the parameters of the path

@return MapInterface<string, Parameter>
Return all the parameters of the path