I think we've already established that pronunciation is based on a more regional setting and neither is really wrong.
My answer is that I don't say the word, it can be a rather hurtful term and I have no need to call anybody that
But seriously, to all you people going "Um, it's got "at" in it so clearly it's Hat. Are you all idiots?" Shutup. As someone already pointed out, how do you say the word swat? Vowels have have more than one sound, it varies from word to word.
If you pronounce it to rhyme with Hat, that's fine. But don't act like everyone who doesn't is an idiot who doesn't grasp the language.