    # File lib/chef/knife.rb, line 169
        def self.guess_category(args)
          category_words = args.select {|arg| arg =~ /^(([[:alnum:]])[[:alnum:]\_\-]+)$/ }
          category_words.map! {|w| w.split('-')}.flatten!
          matching_category = nil
          while (!matching_category) && (!category_words.empty?)
            candidate_category = category_words.join(' ')
            matching_category = candidate_category if subcommands_by_category.key?(candidate_category)
            matching_category || category_words.pop
          end
          matching_category
        end