'Does a typecheck and dispatches to :meth:`select_template`
if an iterable of template names is given, otherwise to
:meth:`get_template`.
.. versionadded:: 2.3'

@internalcode
def get_or_select_template(self, template_name_or_list, parent=None, globals=None):

    if isinstance(template_name_or_list, string_types):
        return self.get_template(template_name_or_list, parent, globals)
    elif isinstance(template_name_or_list, Template):
        return template_name_or_list
    return self.select_template(template_name_or_list, parent, globals)
