code: 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.finalf 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
docs: 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`.