Facial rigging:
Create new eye joint, from existing head joint. Create 'locator' inside of eye ball geometry and 'contstrain point' Maintain Offset 'OFF'.
Parent constraint the eye joint to the eye geometry.
Do not 'parent' in the outliner, as the hierachy will become complicated and messy. In the outliner, keep all geometry together and all joints together.
Create an eye controller (mask shape with circular eye holes) using Nurbs cuves, in component mode and scaled/stretched to created shape.
Modify centre pivot and snap to centre of eyeball: then move in the Z axis away from the geometry. Clear history and freeze transformations, once the controller is in the final place.
Create tongue joints, 1,2,3, and 4. Parent constraint.
Parent constraint to the root
Create head controller using nurbs curves. Start with a polygon primitive pyramid. Turn off wire frame mode and select CV curve tool, 1 point linear. Snap curve to each point on pyramid; it's fine to duplicate lines. Once complete, rename nurbs curve in outliner and then delete pyramid. Centre pivot and snap to head_bn joint.
Delete history and freeze transformations.
Contstrain orient and maintain offset 'ON'
Repeat for jaw controller, root, spine, chest, neck and global controller.
Parent controllers in outliner, choosing the 'child' first, then CTRL and select the parent. Press 'P'
To bind:
In outliner, show only joints (*bn)
Select all joints, then select geometry.
Skin bind.
Skin weights next!