public ThenClauseComposite CreateBy(ParseNode clauseSubtree)
		{
			var result = new ThenClauseComposite();
			foreach (var whenClause in _thenClauses.Keys)
			{
				var clause = FindRecursive(whenClause, clauseSubtree.Nodes.ToArray());
				if (clause == null)
				{
					continue;
				}

				result.Add(_thenClauses[whenClause](clause));
			}
			return result;
		}