The way I see it, it should not be further reducible. I'm thinking z.zq is like lambda z: z(q) # Python, not lambda calcand you do not know z nor q so it is not further reducible.The below derivation (where I am wondering about the last steps) is from the new Haskell book: 
Why does z.zq reduce to q?
lambda calculus
It is $\beta$-reduction defined in terms of substitution (rename ($\alpha$-conversion) first if necessary):$$(\lambda z. zq) (q) \to_{\beta} [z/q](zq) = qq. $$In Haskell, $\lambda z.zq$ defines an anonymous function which takes a single parameter (represented by $z$) and performes $zq$.