Could I define 0^0 to be 1?
Yes, by doing this (similar to this):
Unprotect[Power];
Power[0|0., 0|0.] = 1;
Protect[Power];
If you want to revert to normal:
Unprotect[Power];
ClearAll[Power];
Protect[Power];
The downside is that it doesn't make sense mathematically, and from a false premise you could reach a false conclusion. You better constrain your function in some other way. Try reading on conditional definitions here: Condition
With the help of @Michael E2 in my question
Case $\frac{0}{0}$
In this case,you can define your function like this:
func1[a_,b_]:=0 /;b==0
func1[a_,b_]:=a/b
Test
func1[0, 0]
1
Case$0.^0$
So you can use the /;
to avoid $0.^0$
func2[x_,0]:=1/;x==0||x==0.
func2[x_,y_:0]:=x^y
Test
func2[0, 0]
1
func2[0., 0]
1