Render Passes and State Sets Tool
It operates using scene states and object properties. Some passes you add objects to an array and others will need to set up your object properties the way you would if you were normally trying to get a shadow pass or reflection pass.
It also automates folder and naming of the selected passes. So for instance a matte pass will render to the selected directory but the script will add a folder called Matte and add _Matte to the file name.