Trigonometric functions with symbolic argument an even multiple of pi



Maxima has an elegant way of handling such evaluations if we know that
integer m is even:
  declare(m,even);
  cos(m*%pi);
The answer is 1, as expected.  However, the case where the argument is an
even integer raised to
a symbolic positive integer power seems more difficult.  I wonder if there
is a simple solution.  
One possible attempt is:
  declare(positive, feature);
  matchdeclare(ep, lambda([x],is(op(x)="^") and evenp(part(x,1))
    and member(part(x,2),propvars(integer)) and
member(part(x,2),propvars(positive))));
  tellsimpafter(cos(ep*%pi),1);
After this sequence the statements
  kill(m);
  declare(m,[integer,positive]);
  cos(4^m*%pi);
give an answer of 1, but the approach seems rather complicated.
-- George Leeman