Thinking with Patterns