public IRouteRegistry <TRequest, TResponse> Register(
     Endpoint endpoint,
     HandleRequest <TRequest, TResponse> handleRequest,
     ValidateParameterKeys validateParameterKeys)
 {
     _routeRegistrar.Register(_segmentTree, endpoint, handleRequest, validateParameterKeys);
     return(this);
 }
        public void Register(
            SegmentNode <TRequest, TResponse> segmentTree,
            Endpoint endpoint,
            HandleRequest <TRequest, TResponse> handleRequest,
            ValidateParameterKeys validateParameterKeys)
        {
            var segments = ParseRoute(endpoint).ToList();

            RunParameterKeyValidation(validateParameterKeys, segments);
            RegisterRequestHandler(segmentTree, endpoint, handleRequest, segments);
        }