Complex hardware systems can be designed by breaking down their behaviour into high-level descriptions of constituent scenarios and then composing these scenarios into an efficient hardware implementation using a form of highlevel synthesis. There are a few existing methodologies for such scenario-based specification and synthesis, and in this paper we focus on highly concurrent systems, whose scenarios are typically described using explicit concurrency models such as partial orders. We propose a new algorithm for composition of partial order scenarios. Unlike previously published methods, the proposed algorithm supports composition constraints, which allow the designer to restrict certain aspects of the composition in order to reuse legacy IP. Furthermore, our implementation is more scalable and can cope with specifications comprising hundreds of scenarios at the cost of only 5% of area overhead compared to optimal solutions obtained by exhaustive search. The proposed algorithm is implemented in an open-source EDA tool, validated on a set of benchmarks, and compared to the state-of-the-art behavioural composition approaches and to other existing methodologies that make use of behavioural synthesis.