1. A method comprising: receiving, by a pattern process executing on a computing device, a first pattern definition comprising one or more outputs; receiving, by the pattern process executing on the computing device, a second pattern definition comprising one or more inputs; creating, by the pattern process executing on the computing device, a map between at least one of the one or more outputs of the first pattern definition and at least one of the one or more inputs of the second pattern definition if a type of the at least one of the one or more outputs of the first pattern definition matches a type of the at least one of the one or more inputs of the second pattern definition, wherein the map is a graph including one or more nodes representing transformations of one or more inputs of the second pattern definition into one or more outputs of the first pattern definition and one or more lines representing the one or more inputs of the second pattern definition and the one or more outputs of the first pattern definition; and producing, by the pattern process executing on the computing device, a new pattern definition comprising the first pattern definition, the second pattern definition, and the map.