 						var bestMatch: (score: Int, component: String, usageComponent: String)?
 						
 						for usageComponent in availableUsageComponents {
-							if usageComponent == "*" || usageComponent == "..." {
-								continue
-							}
-							
 							for component in availableComponents {
 								let distance = Levenshtein.distanceBetween(usageComponent, and: component)
 								let componentScore = min(distance, usageComponent.characters.count)

			)]
		)
		
		if pendingStopAction == .run && lowercase.hasPrefix(shortName.lowercased()) {
			//do a more precise check so names like @FirstStep won't cause the bot to respond
			let name = self.name.lowercased().unicodeScalars
			

import Foundation
import Dispatch

///A ChatListener parses commands from the chat room.
open class ChatListener {
	///The commands recognized by this ChatListener.
	open let commands: [Command.Type]
	
	open var info: Any? = nil
