Compensation for energy loss in single-scattering microfacet BSDF models
To my knowledge, there is no easy and analytic way of recovering the energy lost in single-scattering models. The previous techniques precompute the energy loss and reinject it in the BRDF as a diffuse-like component:


http://sirkan.iit.bme.hu/~szirmay/scook.pdf
http://www.cs.cornell.edu/projects/layered-sg14/layered.pdf


What they propose is energy conservative and reciprocal, and it is probably the simplest way of fixing the visual darkening due to the energy loss. The main drawback is that since the energy loss does not have an analytic expression, it has to be precomputed and stored in a look-up table.