The macroscopic laws controlling the advection and diffusion of solute at the scale of the porous continuum are derived in a general manner that does not place limitations on the geometry and time evolution of the pore space. Special focus is given to the definition and symmetry of the dispersion tensor that is controlling how a solute plume spreads out. We show that the dispersion tensor is not symmetric and that the asymmetry derives from the advective derivative in the pore-scale advection-diffusion equation. When flow is spatially variable across a voxel, such as in the presence of a permeability gradient, the amount of asymmetry can be large. As first shown by Auriault [J.-L. Auriault et al. Transp. Porous Med. 85, 771 (2010)] in the limit of low Péclet number, we show that at any Péclet number, the dispersion tensor Dij satisfies the flow-reversal symmetryDij (+q) = Dji (-q) where q is the mean flow in the voxel under analysis; however, Reynold's number must be sufficiently small that the flow is reversible when the force driving the flow changes sign. We also demonstrate these symmetries using lattice-Boltzmann simulations and discuss some subtle aspects of how to measure the dispersion tensor numerically. In particular, the numerical experiments demonstrate that the off-diagonal components of the dispersion tensor are antisymmetric which is consistent with the analytical dependence on the average flow gradients that we propose for these off-diagonal components.