protected virtual void RemoveUselessLabels( IDictionary<string, LabelElementPair> ruleToElementLabelPairMap )
{
if ( ruleToElementLabelPairMap == null )
return;
var tokill = from pair in ruleToElementLabelPairMap.Values
let rule = GetRule( pair.elementRef.Text )
where rule != null && !rule.HasReturnValue && !pair.actionReferencesLabel
select pair.label.Text;
foreach ( string label in tokill.ToArray() )
ruleToElementLabelPairMap.Remove( label );
}