def METHOD_NAME(self, tinput, date):
    # Special case gender uniques
    if tinput == 'Mrs Bell': tinput = 'Mrs E Bell'
    text, titletotal = self.striptitles(tinput)
    # Special case for non-MLAs
    if text == 'P Murphy': return ["uk.org.publicwhip/member/454"]
    if text == 'McFall': return ["uk.org.publicwhip/member/384"]
    # Find unique identifier for member
    ids = set()
    matches = []
    matches.extend(self.fullnames.get(text, []))
    if not matches and titletotal > 0:
        matches = self.lastnames.get(text, None)
    # If a speaker, then match against the special speaker parties
    if text == "Speaker" or text == "The Speaker":
        matches.extend(self.parties.get("Speaker", []))
    if not matches and text in ('Deputy Speaker', 'Madam Deputy Speaker', 'The Deputy Speaker', 'The Principal Deputy Speaker', 'Madam Principal Deputy Speaker'):
        if not self.deputy_speaker:
            raise ContextException('Deputy speaker speaking, but do not know who it is')
        return self.METHOD_NAME(self.deputy_speaker, date)
    if matches:
        for m in matches:
            if (date == None) or (date >= m["start_date"] and date <= m["end_date"]):
                ids.add(m["id"])
    return ids