protected RouteValueDictionary      CloneRouteDirectory(PageHandlerExecutingContext context)
        {
            var dictionaryData = new RouteValueDictionary();

            string[] RouteKeyNames = null;

            var IsRouteKey = !string.IsNullOrWhiteSpace(RouteKeys);

            if (IsRouteKey)
            {
                RouteKeyNames = RouteKeys.Split(",", StringSplitOptions.RemoveEmptyEntries);
            }

            var AnyRouteKey = RouteKeyNames != null && RouteKeyNames.Any();

            foreach (var item in context.HttpContext.Request.Query)
            {
                if (string.Equals(item.Key, "handler", StringComparison.OrdinalIgnoreCase) && !CopyRouteDataHandler)
                {
                    continue;
                }

                if (IsRouteKey)
                {
                    if (AnyRouteKey && RouteKeyNames.Contains(item.Key))
                    {
                        dictionaryData.Add(item.Key, item.Value);
                    }
                }
                else
                {
                    dictionaryData.Add(item.Key, item.Value);
                }
            }
            return(dictionaryData);
        }