def accepts(self, input):
		'''
			Test whether the present FSM accepts the supplied string (iterable of
			symbols). Equivalently, consider `self` as a possibly-infinite set of
			strings and test whether `string` is a member of it.
			This is actually mainly used for unit testing purposes.
			If `fsm.anything_else` is in your alphabet, then any symbol not in your
			alphabet will be converted to `fsm.anything_else`.
		'''
		state = self.initial
		for symbol in input:
			if anything_else in self.alphabet and not symbol in self.alphabet:
				symbol = anything_else

			# Missing transition = transition to dead state
			if not (state in self.map and symbol in self.map[state]):
				return False

			state = self.map[state][symbol]
		return state in self.finals