make select much more useful

Can you give an example? I don't see it. E.g. why would integers be useful for describing a plot? Then, with the current implementation, you can't use more general thing like numpy array (in general any unhashable object).