We have the usual commutation relations for creation/annihilation operators in QFT, $$\left[\hat a(\vec p),\hat a(\vec q)\right]=\left[\hat a(\vec p)^\dagger,\hat a(\vec q)^\dagger\right]=0\tag{1}$$ $$\left[\hat a(\vec p),\hat a(\vec q)^\dagger\right]=(2\pi)^3 2E(\vec p)\delta^{(3)}\left(\vec p- \vec q\right)\tag{2}$$
I'm trying to understand the last two equalities of the following proof:
$$\left[\hat a(\vec p)^\dagger\hat a(\vec p), \hat a(\vec q)^\dagger\hat a(\vec q)\right]$$
$$=\hat a(\vec p)^\dagger\left[\hat a(\vec p),\hat a(\vec q)^\dagger\hat a(\vec q)\right]+\left[\hat a(\vec p)^\dagger,\hat a(\vec q)^\dagger\hat a(\vec q)\right]\hat a(\vec p)$$
$$=\hat a(\vec p)^\dagger\Big(\hat a(\vec q)^\dagger\left[\hat a(\vec p),\hat a(\vec q)\right]+\left[\hat a(\vec p),\hat a(\vec q)^\dagger\right]\hat a(\vec q)\Big)$$
$$+\Big(\hat a(\vec q)^\dagger\left[\hat a(\vec p)^\dagger,\hat a(\vec q)\right]+\left[\hat a(\vec p)^\dagger,\hat a(\vec q)^\dagger\right]\hat a(\vec q)\Big)\hat a(\vec p)$$
$$=\hat a(\vec p)^\dagger\left[\hat a(\vec p), \hat a(\vec q)^\dagger\right]\hat a(\vec q)-\hat a(\vec q)^\dagger\left[\hat a(\vec q), \hat a(\vec p)^\dagger\right]\hat a(\vec p)$$
$$\color{red}{=}(2 \pi)^32E(\vec p)\delta^{(3)}\left(\vec p- \vec q\right)\Big(\hat a(\vec p)^\dagger \hat a(\vec q)-\hat a(\vec q)^\dagger \hat a(\vec p)\Big)\color{red}{=}0$$
Taking these equalities (highlighted red) one in turn, starting with the first,
$$\hat a(\vec p)^\dagger\left[\hat a(\vec p), \hat a(\vec q)^\dagger\right]\hat a(\vec q)-\hat a(\vec q)^\dagger\left[\hat a(\vec q), \hat a(\vec p)^\dagger\right]\hat a(\vec p)$$ $$=(2 \pi)^32E(\vec p)\delta^{(3)}\left(\vec p- \vec q\right)\Big(\hat a(\vec p)^\dagger \hat a(\vec q)-\hat a(\vec q)^\dagger \hat a(\vec p)\Big)\tag{3}$$
Taking eqn. $(2)$, $$\left[\hat a(\vec p),\hat a(\vec q)^\dagger\right]=(2\pi)^3 2E(\vec p)\delta^{(3)}\left(\vec p- \vec q\right)$$ and switching the momenta labels, $\vec p \to \vec q$ and $\vec q \to \vec p$ should result in a similar equation to $(2)$, namely, $$\left[\hat a(\vec q),\hat a(\vec p)^\dagger\right]=(2\pi)^3 2E(\vec q)\delta^{(3)}\left(\vec q- \vec p\right)\tag{4}$$
Okay, so the $\delta$ 'function' is even, so $\delta^{(3)}\left(\vec p- \vec q\right)=\delta^{(3)}\left(\vec q- \vec p\right)$.
But eqn. $(3)$ can only be true if $(2)$ and $(4)$ are equal, and this can only happen if $E(\vec p)=E(\vec q)$. But why should this be the case?
For the final equality, $$(2 \pi)^32E(\vec p)\delta^{(3)}\left(\vec p- \vec q\right)\Big(\hat a(\vec p)^\dagger \hat a(\vec q)-\hat a(\vec q)^\dagger \hat a(\vec p)\Big)=0\tag{5}$$
I fail to see how eqn. $(5)$ holds as to invoke the 'sifting/sampling property' of the $\delta$ function one would need to be integrate over $\vec q$ (or $\vec p$) so that the term in parentheses is zero, or $$\hat a(\vec p)^\dagger \hat a(\vec q)=\hat a(\vec q)^\dagger \hat a(\vec p)$$ when $\vec p = \vec q$.
But no such integration is being performed, so why is eqn. $(5)$ equal to zero?