What are the hard counters to every class?

I realize that there is no "best class" for pvp, but there are classes which have a reasonable high advantage over others in this sort of a rock paper scissors game-style.
For example, mages vs shamans. Mages get rekt since shamans can purge frost armor and other buffs. Thus if you were smart, like me, you would roll mage on horde side. Specifically undead. Now you got rid of two of your natural weaknesses, locks and shamans.
Now I havnt played vanilla long enough to experiment all class combos and find out which classes have an advantage over which, so thats why im asking this question. I hope it will help other people out too when deciding to roll whatever class they want.
Can the community please fill me in, based on personal experience playing their own character, which classes they have trouble fighting and which ones they are great against? And if there is a major difference due to spec, I would like you to mention that as well. Like how warriors can beat locks, but only with death wish.
Warrior
Hunter
Paladin
Druid
Shaman
Rogue
Mage
Warlock
Priest
For example, mages vs shamans. Mages get rekt since shamans can purge frost armor and other buffs. Thus if you were smart, like me, you would roll mage on horde side. Specifically undead. Now you got rid of two of your natural weaknesses, locks and shamans.
Now I havnt played vanilla long enough to experiment all class combos and find out which classes have an advantage over which, so thats why im asking this question. I hope it will help other people out too when deciding to roll whatever class they want.
Can the community please fill me in, based on personal experience playing their own character, which classes they have trouble fighting and which ones they are great against? And if there is a major difference due to spec, I would like you to mention that as well. Like how warriors can beat locks, but only with death wish.
Warrior
Hunter
Paladin
Druid
Shaman
Rogue
Mage
Warlock
Priest