Updated hash functions to use boost::hash_combine