internal MatchResult Match(MethodUrlsSubset group, GenBinding newBinding)
        {
            #region MatchPart



            #endregion


            #region NoMatchPart



            #endregion


            return MatchResult.BothOptions;

            
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="methodUrlsSubset"></param>
        /// <returns></returns>
        /// 
        internal bool MatchWithSubset(MethodUrlsSubset methodUrlsSubset)
        {
            List<GenBinding> newList = new List<GenBinding>(methodUrlsSubset.BindingsList);
            IEnumerable<GenBinding> matchBindings = newList.Where(binding => binding.MatchStatus);
            IEnumerable<GenBinding> noMatchBindings = newList.Where(binding => !binding.MatchStatus);
            
            if (this.MatchStatus)
            {
                foreach (GenBinding binding in matchBindings)
                {
                    if (!CompareWithMatch(binding))
                        return false;
                }

                foreach (GenBinding binding in noMatchBindings)
                {
                    if (!CompareMatchAndNoMatch(this, binding))
                        return false;
                }

            }
            else
            {
                foreach (GenBinding binding in matchBindings)
                {
                    if (!CompareMatchAndNoMatch(binding, this))
                        return false;
                }

            }

            return true;


        }
        private List<MethodUrlsSubset> CreateGroups(BindVerb verb)
        {
            MethodUrlsSubset firstGroup = new MethodUrlsSubset();
            List<MethodUrlsSubset> allGroups = new List<MethodUrlsSubset>();

            List<MethodUrlsSubset> newBindingGroups;
            allGroups.Add(firstGroup);
            List<IEnumerable<GenBinding>> bindingsForVerb = allBindings[verb];
            foreach (IEnumerable<GenBinding> bindingsPair in bindingsForVerb)
            {

                newBindingGroups = new List<MethodUrlsSubset>();

                foreach (MethodUrlsSubset group in allGroups)
                {
                    foreach (GenBinding binding in bindingsPair)
                    {
                        MethodUrlsSubset newGroup = group.ApplyBinding(binding);
                        if (newGroup != null)
                            newBindingGroups.Add(newGroup);
                    }
                }

                allGroups = newBindingGroups;

            }

            return allGroups;

        }