private void Add(Node newNode) { if (!newNode.HasPathTo(_lastNode) && !newNode.Equals(_lastNode)) { return; } var matchNode = _currentNodes.FirstOrDefault(node => node.Equals(newNode)); if (matchNode == null) { _currentNodes.Add(newNode); return; } matchNode.MergePathCount(newNode); }