docs: def sentence(random=random, *args, **kwargs):
      """
      Return a whole sentence
  
      >>> mock_random.seed(0)
      >>> sentence(random=mock_random)
      "Agatha Incrediblebritches can't wait to smell two chimps in Boatbencheston."
  
      >>> mock_random.seed(2)
      >>> sentence(random=mock_random, slugify=True)
      'blistersecret-studios-is-the-best-company-in-liveronion'
  
      """
      if 'name' in kwargs and kwargs['name']:
          nm = kwargs(name)
      elif random.choice([True, False, False]):
          nm = name(capitalize=True, random=random)
      else:
          nm = random.choice(people)
  
      def type_one():
          return "{name} will {verb} {thing}.".format(name=nm,
                                                      verb=verb(random=random),
                                                      thing=random.choice([a_thing(random=random),
                                                                           things(random=random)]))
  
      def type_two():
          return "{city} is in {country}.".format(city=city(capitalize=True, random=random),
                                                  country=country(capitalize=True, random=random))
  
      def type_three():
          return "{name} can't wait to {verb} {thing} in {city}.".format(name=nm,
                                                                        verb=verb(random=random),
                                                                        thing=a_thing(random=random),
                                                                        city=city(capitalize=True, random=random))
  
      def type_four():
          return "{name} will head to {company} to buy {thing}.".format(name=nm,
                                                                       company=company(capitalize=True, random=random),
                                                                       thing=a_thing(random=random))
  
  
      def type_five():
          return "{company} is the best company in {city}.".format(city=city(capitalize=True, random=random),
                                                                   company=company(capitalize=True, random=random))
  
      def type_six():
          return "To get to {country}, you need to go to {city}, then drive {direction}.".format(
              country=country(capitalize=True, random=random),
              city=city(capitalize=True, random=random),
              direction=direction(random=random))
  
      def type_seven():
          return "{name} needs {thing}, badly.".format(name=nm, thing=a_thing(random=random))
  
      def type_eight():
          return "{verb} {noun}!".format(verb=verb(capitalize=True, random=random), noun=noun(random=random))
  
      return random.choice([type_one,
                            type_two,
                            type_three,
                            type_four,
                            type_five,
                            type_six,
                            type_seven,
                            type_eight])()