Binary-state and component independent assumptions will lead to doubtful and misleading redundancy allocation schemes which may not satisfy the reliability requirements for real engineering applications. Most published works proposed methods to remove the first assumption by studying the degradation cases where multiple states of a component are from the best state to the degradation states then to the completely failed state. Fewer works focused on removing the second assumption and they only discussed dependent failures which are only a special case of component dependency. This work uses the Semi-Markov process to describe a two-component system for redundancy allocation. In this work, multiple states of a component are represented by multiple output levels, which are beyond the scope of degradation, and the component dependency is not limited to failure dependency only. The load sharing is also taken care of in the proposed work. The optimal redundancy allocation scheme is obtained by solving the corresponding redundancy allocation optimization problem with the reliability measure, the system availability, obtained through the Semi-Markov process model being constraint. Two case studies are presented, demonstrating the applicability of the propose method.