public bool Contains(ExpressionKey <T, U> key) => _lookup.Contains(key);
 public bool Contains(U key) => _lookup.Contains(ExpressionKey.CreateValue <T, U>(key));
 public IEnumerable <T> this[ExpressionKey <T, U> key] => _lookup[key];
 public bool Contains(T key) => _lookup.Contains(ExpressionKey.CreateKey <T, U>(key));
 public IEnumerable <T> GetMatches(U key) => _lookup[ExpressionKey.CreateValue <T, U>(key)];