'Override the builtin `dir` behavior to include:
- Transforms available by aliases
- Attribute / methods of the underlying self.frame object'

@override__dir__
def __dir__(self):

    dir_values = set()
    for name in frame_transform_graph.get_names():
        frame_cls = frame_transform_graph.lookup_name(name)
        if self.frame.is_transformable_to(frame_cls):
            dir_values.add(name)
    dir_values.update(set((attr for attr in dir(self.frame) if (not attr.startswith(u'_')))))
    dir_values.update(frame_transform_graph.frame_attributes.keys())
    return dir_values
