**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Design Add and Search Words** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
Trie with DFS for wildcard '.'
**Edge Cases to Consider:**
- (1) Search with all dots
- (2) Empty search string
- (3) Word not in trie but prefix is