Modular robots offer the flexibility to adapt a single robot system to a wide range of tasks, but selecting an appropriate module configuration for a task can be very difficult for a non-expert user. We are developing an algorithm that can merge two existing mechanism designs into an optimal new design that implements both, allowing a user to create new designs using a library of base designs. Designs topologies are represented as graphs with edges corresponding to links and vertices corresponding to joints. Kinematic and physical constraints are represented as properties of each node and edge in the graph. Current work work focuses on applying our algorithm to SMORES, a new modular robot developed at Penn. We are progressively increasing the realism and expressiveness of our mechanism representation, so that our algorithm may eventually be applied to a wide range of sophisticated modular mechanisms.