I play soldier and demo as my main classes and even when i got a friend pocket-medicing me, any type of pyro can be a pain in the ass. Even the w+m1'ers can at some point get too close without me or my medic noticing, or having to reload a rocket :( But the worst are, and will always be, the unusual-hat-wearing-unreal-reflecting-medic-up-their-ass pyros, who will reflect EVERY rocket you send in their face, oh god theese piss me off. But one sure way to take down pyros will always be HITSCAN WEAPONS such as shotgun, pistol, minigun, sniper rifle, SMG and so on, basicly all weapons that he cant reflect the projectiles off, and while keeping a distance to him. For soldier this means quit the rockets if you KNOW that he is gonna reflect them, take out the shotgun and try the best. Now if he is switching between his flaregun and axtinguisher a lot, you can still manage to give him a rocket to the face when he approaches you with the axe. This has saved me quite a lot, to just barely getting that rocket fired off on him as he tries to hit you with axtinguisher and this will also work slightly as a rocket jump, blasting you away from the pyro then to finishing him off with the shotgun :) Natasha-heavy will work great on pyros if you are aware of them, however. Keeping your distance and knowing his tactics/possibilities is key to defeat any pyro. Oh and btw, its still possible to hit a pyro with rockets even if he's good at reflecting, you can aim the rockets out of his reflecting-range by aiming for the ground ahead of him, he will still take splash damage but be unable to reflect it, kinda unreliable tactic tho. Hope this helps you :)