By representing problems as searches over Directed Acyclic Graphs (DAGs), we can solve 'tough' AI problems - like finding the fastest route to a destination, playing two player games like Chess or Checkers, or even finding the best Scrabble move! However, there are several 'gotchas' when dealing with extremely large problem spaces (i.e.; all possible letter combinations in Scrabble). We discuss these pitfalls in detail, suggest a variety of Search Strategies like Depth First, Best First, Beam Search, Breadth First, and Iterative Deepening. Code and results are demonstrated in Python.