Rendering a pupil within a glasses lens? This is my first post here and I'm still learning about Blender (aren't we all though?) and I had a question about an effect I'd like to do.

I'd like to make it so that a character with solid-color glasses lenses can have their pupil render through the lens, while maintaining its appropriate location in 3D space (ie not textured onto the lens). A way I think this could work would be rendering the pupil over just the lens but I don't know if that's the most practical or achievable way to do this. 

For my example I'll use this model of Velma from Scooby-Doo I made for practice:


The glasses, body, and eyes exist as separate objects for clarification (but that can be changed need be)

Instead of making the lens clear or not being able to see the actual eye or face behind the lens from the sides, I'd like to keep the cartoony look of this and would like to use a similar effect in the future. I hope I'm being clear enough with what I'm trying to achieve. Thank you for your help in advance!

EDIT: A rough approximation of the type of effect I'd like:
If you don't mind using OSL (that is, setting the render to Cycles/CPU, and checking the 'OSL' option) then you can look ahead down a ray, using a script.

This script returns the Pass Index of the next material encountered, continuing in the direction of the incoming ray, (so it won't, without improvement, take refractive/reflective deflection into account, and the lens is a single plane, without thickness.)

#include "stdosl.h"
shader NextIdx(  
  output float nextIdx  = 0.0    
)
{  
  if (trace(P,-I,"mindist",0.00001)){
    getmessage("trace", "material:index", nextIdx);
  }  
}


.. and can be used in a tree something like this, to make the 'glass' of the lens:



.. where the eye material has an Pass Index of 10, and everything else has an index of 0...

producing..



so in this example, the 'glass' is transparent to everything has a material Pass Index greater than 5, and diffuse grey to everything else.