redefine __hash__ in classes that redefine __eq__
wrap dict.values call with list to support py3