public MockRaggedPatternBuilder AddStart(params string[] values)
        {
            foreach (var value in values)
            {
                var segment = new MockNonRecursivePathSegment(value);
                _result.StartsWith.Add(segment);
                _result.Segments.Add(segment);
            }

            return this;
        }
        public MockRaggedPatternBuilder AddContainsGroup(params string[] values)
        {
            var last = _result.Segments.Last();

            if (!(last is MockRecursivePathSegment))
            {
                AddRecursive();
            }

            var containSegment = new List<IPathSegment>();
            foreach (var value in values)
            {
                var segment = new MockNonRecursivePathSegment(value);
                containSegment.Add(segment);
                _result.Segments.Add(segment);
            }

            _result.Contains.Add(containSegment);

            AddRecursive();

            return this;
        }