Simplifying dot and cross product



Hello.  I'm new to Maxima, and I'm hoping to use it for vector algebra
derivations, but I'm having trouble simplifying formulas with both dot
and cross products.  For example:

(%i1) load("vect") $
(%i2) declare([p,q], nonscalar) $
(%i3) ev(vectorsimp(p . (p~q)), expandall);
(%o3) p . p~q

This should simplify to zero since the cross product p~q is
perpendicular to p and q.  What am I missing here?

Thanks,
Nathan Reed