@nedbat 

It is ambiguous which lambda function gets called and what the two values are. Whichever gets called, it should be the same for both. This might be exposing a problem in the way the code currently is.

`evaluator` calls `lower_dict` on the dictionary it is passed. It does the following:
```
def lower_dict(input_dict):
    """
    Convert all keys in a dictionary to lowercase; keep their original values.

    Keep in mind that it is possible (but not useful?) to define different
    variables that have the same lowercase representation. It would be hard to
    tell which is used in the final dict and which isn't.
    """
    return {k.lower(): v for k, v in input_dict.iteritems()}
```
So it depends which key/value pair is in `iteritems` first.

I guess, should it be changed so that it is always 6 or 7 in this case? (i.e. it's one or the other, and we know beforehand)