ValueEquals works on IReadOnlyDictionary instead of IDictionary