I also have a very strong-willed 4 year old. My son is overly defiant, very persistant and intelligent enough to be very good at manupulating people. I had him evaluated through the public school's Early Childhood Development program (free program for preschool kids with developmental delays here in Indiana). He was already in the program for speech therapy and he qualified for the preschool program. He's been going 5 afternoons a week this school year and I've seen a tremendous improvement. Most 4 year olds go through a super-stubborn, defiant stage... but a small percentage (like my son) are actually diagnosed as being strong-willed/defiant enough to make it a developmental delay. If it continues a few more months (we noticed it with out son starting at around 3.5 - more than a year ago) you might think about getting her evaluated.
One big thing that helped us... staying consistent. I thought we were, but after talking with his teacher I realized we weren't. Like you, we "tried everything". That was the problem... we were told to pick something and stick with it for 4-6 months even if it looked like it wasn't doing anything. Finally, after 7 months, something 'clicked' in my son's head and it works! (most the time) Another big thing... always follow through. You said you threatened to take away dance... but did you?! If you didn't, you just set yourself back a few months and have to start from scratch. I've blurted out things I regretted 2 seconds after saying them... because we've had to miss birthday parties, zoo trips, playgroups, etc. However, now - finally! - my son knows I mean what I say and just saying I'll take away the PS2 for a few days will get him to behave. You also have to be consistent with the teachers... I talk to his teacher weekly so we are on the same page about everything.
The other thing is to try to avoid as many battles as possible. If you know she's a bear in the store when tired, time them carefully and bring lots of snacks to pre-empt any tantrums. Let her decide what to wear and whether or not to wear her coat (most kids will put it on when cold enough). Let her think she's getting her way most the time and she's more likely to listen/behave when you need her to (in parking lots, staying off the street, not running off in stores, etc).