Three nodes to allow creating NPR materials in EEVEE. The goal was to allow what was possible in BI, but also improve upon the workflow. I tried to not make too big of a disruption on EEVEE's goal of PBR, but still allowing many types of NPR.
Slice Shader
Does the toon shader split ramp. Slices the "lighting" shader into two different shaders (usually emissive) based on the brightness and the "split point". Does the equivalent of plugging a shader into a ramp node in BI, but more powerful because you can plug in textures, animate values, etc...
Can be chained together to have multiple splits.
Smooth Diffuse BSDF
This is the classic Half Lambert/wrapped lambert implementation for having a smooth ramp to base the toon shader on. The regular Lambert doesn't have enough information in the dark values to be able to use a toon ramp properly.
Shader to RGB
Lets you connect the output of shader closures into any nodes. Basically allows all the techniques that were possible in BI, along with the simplified toon workflow that the above two nodes provide. Of course, it can be mixed and matched with the top two nodes as well. The sample scene demonstrates this.
Sample scene:
Initial discussion: https://devtalk.blender.org/t/contribution-npr-nodes-in-eevee/372/14
Previous proposal by Kinouti Takahiro: D3190: Blender 2.8 Eevee NPR Proposal - Add SeparateBSDF node and CombineBSDF node




