In Python and Ruby, 0 asterisk asterisk 0 == 1.
In Windows Calculator, 0 [x^y] 0 == 1.
So I guess the consensus is that you should return 1.
"pow(x, +/-0) is 1 for any x (even a zero, quiet NaN, or infinity)."
"pown(x, 0) is 1 for any x (even a zero, quiet NaN, or infinity)."
- but -
"powr(+/-0, +/-0) signals the invalid operation [and returns NaN]."
"pown" refers to the function on R x N defined by repeated multiplication; "powr" is the function on R x R defined by exp(y log(x)). "pow" refers to the mental hodgepodge of the two that most people intend when they write x^y without really thinking about it.
Edit: At the very least, that behaviour should be a configurable option for those who desire something other than what most mathematicians accept as being the correct answer.