private string GetQueryNodeValue(IFactoryNode node, bool addToMatches = true)
        {
            var alias = string.Format("{0}{1}", node.Alias(), node.GetUniquePropertyValue());

            if (_processedNodes.FirstOrDefault(e => e.Alias == alias) == null)
            {
                if (addToMatches) _requiredMatches.Add(new ProcessedNode { Alias = alias, Node = node });

                _processedNodes.Add(new ProcessedNode { Alias = alias, Node = node });
            }

            return alias; 
        }